ssh-autologin
mv ssh-autologin /bin/ssh-autologin
chmod +x /bin/ssh-autologin
ssh-autologin -l login -g host
#!/bin/bash
#remove trash if exist
if [ -f temp_key_collection ]; then
rm -f temp_key_collection;
fi
echo "Autologowanie ssh v2.";
user=$(whoami)
login="";
servers="";
function single () {
echo "Single."
echo "Sprawdzanie loginu.";
if [ "$login" == "" ]; then
echo "Login pusty.";
exit 0;
fi
echo "Sprawdzenie hosta.";
if [ "$servers" == "" ]; then
echo "brak hosta.";
exit 0;
fi
echo "Sprawdzenie kluczy.";
if [ -f ~/.ssh/id_dsa.pub ] ; then
echo "Klucze istnieja.";
else
echo "Nie znaleziono id_dsa.pub. Generowanie kluczy dsa:"
ssh-keygen -t dsa -q -f ~/.ssh/id_dsa -N "" && echo "Klucze dsa zostaly wygenerowane.";
fi
echo "Kopiowanie klucza."
cat ~/.ssh/id_dsa.pub | ssh -l $login $servers 'if [ -d ~/.ssh ] ; then cat >> ~/.ssh/authorized_keys ; else install -d ~/.ssh ; cat >> ~/.ssh/authorized_keys ; fi '
echo "Testowe polaczenie:";
ssh $login@$servers "hostname";
}
function multi () {
echo "Multi."
echo "Sprawdzanie loginu.";
if [ "$login" == "" ]; then
echo "Login pusty wiec login == whoami";
login=$user;
fi
echo "Sprawdzanie listy hostow.";
if [ "$servers" == "" ]; then
echo "Lista hostow jest pusta. Dodaj hosty:";
read servers;
fi
echo "Lista hostow: " $servers
echo "Sprawdzenie kluczy."
if [ -f ~/.ssh/id_dsa.pub ] ;then
echo "Klucze istnieja.";
else
echo "Nie znaleziono id_dsa.pub. Generowanie kluczy dsa:"
ssh-keygen -t dsa -q -f ~/.ssh/id_dsa -N "" && echo "Klucze dsa zostaly wygenerowane.";
fi
echo "Kopiowanie kluczy."
for i in $servers; do
echo $i;
cat ~/.ssh/id_dsa.pub | ssh -l $login $i 'if [ -d ~/.ssh ] ; then cat >> ~/.ssh/authorized_keys ; else install -d ~/.ssh ; cat >> ~/.ssh/authorized_keys ; fi '
ssh $login@$i 'if [ -f ~/.ssh/id_dsa.pub ] ;then echo "Klucze na "$i" istnieja, kopiuje."; cat ~/.ssh/id_dsa.pub; else echo "Klucze nie istnieja, tworze i kopiuje";ssh-keygen -t dsa -q -f ~/.ssh/id_dsa -N ""; cat ~/.ssh/id_dsa.pub; fi' >> temp_key_collection;
done;
echo "Rozrzucanie pelnej listy kluczy."
cat ~/.ssh/id_dsa.pub >> temp_key_collection;
echo "Dodawanie kluczy do tego konta."
cat temp_key_collection | grep ssh >> ~/.ssh/authorized_keys
echo "Dodawanie do reszty.";
for i in $servers; do
echo $i;
cat temp_key_collection | grep ssh | ssh $login@$i "cat >> ~/.ssh/authorized_keys";
done;
}
function hellp () {
cat <<EOF
-l|--login okreslenie loginu
-s|--single autologowanie na danego hosta
-g|--group autologowanie grupy hostow
-h|--help wyswietla ta pomoc
Examples:
ssh-autologin
ssh-autologin -s server1 server2
ssh-autologin -l user_name -g host1 host2
ssh-autologin -g host1 host2 host3
EOF
}
function default () {
echo "Auto default."
echo "Login == whoami, host == host1."
echo "Sprawdzenie kluczy."
login=$user
servers=server1
if [ -f ~/.ssh/id_dsa.pub ] ;then
echo "Klucze istnieja.";
else
echo "Nie znaleziono id_dsa.pub. Generowanie kluczy dsa:"
ssh-keygen -t dsa -q -f ~/.ssh/id_dsa -N "" && echo "Klucze dsa zostaly wygenerowane.";
fi
echo "Kopiowanie klucza."
cat ~/.ssh/id_dsa.pub | ssh -l $login $servers 'if [ -d ~/.ssh ] ; then cat >> ~/.ssh/authorized_keys ; else install -d ~/.ssh ; cat >> ~/.ssh/authorized_keys ; fi '
echo "Testowe polaczenie:";
ssh $login@$servers "hostname";
}
while true ; do
case "$1" in
-l|--login)
login=$2
shift 2
;;
-s|--single)
login=$2
servers=$3
single
exit 0
;;
-g|--group)
shift 1
servers=$*
multi
exit 0
;;
-h|--help)
hellp
exit 0
;;
*)
default
exit 0
;;
esac
done